A class of stripped wireless devices operate within computer networks and typically communicate over small distances and relatively low bandwidths. Such stripped down wireless devices, while mobile, are capable of directly communicating with a rather small number of other devices. Such devices have limited resources and are significantly limited in comparison to wireless devices. For instance, the BLUETOOTH (“BT”) specifications, version 1.0 B, which are herein incorporated by reference in its entirety, describe stripped down wireless devices at different levels of complexity. A BT device has limited range and connectivity, typically within thirty feet of another BT device and to no more than seven other such devices.
The BT system provides for communications between two devices over a common channel using a point-to-point connection or communications between several devices over a common channel via a point-to-multipoint connection. Two or more devices sharing the same channel form a piconet. During communications in a piconet, typically, one device assumes the role of a master device controlling the small number of devices within the piconet. A particular device can participate in more than one piconet, of course, with each piconet having its own channel.
The profile of a BT device provides information about the services available at the device. Thus, a BT compliant cell phone discloses its possible settings, state and other relevant information in its profile. Further, the cell phone may be controlled within a piconet by commands issued by another device. However, it is not presently feasible for remote users, who are outside the reach of the piconet, to control or query the cell phone due to the different protocols employed for operating stripped-down devices, e.g., BT, as opposed to wireless devices in general, e.g., IEEE 802.11. Similarly, a BT device cannot discover services available at a new server device joining a piconet without periodically polling for service discovery.
Discovery and control of devices over the expanse of large networks is possible, e.g., in accordance with the Universal Plug and Play specification (“UPnP”). A copy of the specification is attached to this application for incorporation herein by reference in its entirety. UPnP specifies a method for control and data transfer based on the IP protocol. Specifically UPnP enables a controller or control point to communicate with devices to be controlled over a network. In order to enable such communications, each device to be controlled is required to have an IP address and a Dynamic Host Control Protocol (“DHCP”) client. In the absence of a DHCP server, a UPnP compliant device obtains an IP address via Auto IP.
Given UPnP compliant devices with their own IP addresses, a control point can discover them using a discovery message. The control point obtains the capabilities of a discovered device and logical devices within it by retrieving the description of the device provided in the Extensible Markup Language (“XML”). Following the acquisition of the description, the control point can send actions to the device, e.g., using XML with the aid of the Simple Object Access Protocol (“SOAP”).
UPnP compliant devices and control points advertise their capabilities using multicast discovery messages, i.e., messages addressed to more than one recipient, to which all devices are required to listen and respond. For instance, in response to a multicast discovery message sent by a control point, responding devices send unicast messages addressed to the control point. Furthermore, UPnP allows a physical device to include several logical devices. In such instance a root device description may include several embedded device descriptions in a single description. Alternatively, the several embedded devices may provide their own distinct descriptions.
The device description provided by the device vendor is based on a template for the particular device type. Service descriptions, also in XML and provided by the vendor, include a list of commands that the device responds to and arguments in the commands. A control point obtains these service and device descriptions by issuing a “GET” command, in accordance with the hypertext transfer protocol (HTTP), to the relevant device. Similarly, a control point obtains the value of one or more state variables for a device by querying it.
UPnP also allows a control point to track changes in a state variable by subscribing to an eventing service. Event messages provided by a publisher disclose any change in the state variable to the subscribers. Thus, both polling and broadcasting facilitate communications between devices and control points in accordance with UPnP.
Stripped down wireless devices usually cannot support the overhead required for compatibility with UPnP. The UPnP requirement for IP addresses, support for HTTP and extendable markup language (XML) and the like are not readily met by all stripped down wireless devices, although, some stripped down wireless devices offer support for HTTP and XML. Such limitations on stripped down wireless devices result in incompatibility between devices that can be controlled via the Internet and stripped down wireless devices limited to a piconet in various degrees.